package com.pengshun.modules.api.user.service;

import com.pengshun.modules.api.coal.service.dto.MerchantDto;
import com.pengshun.modules.api.coal.service.dto.UserDto;
import com.pengshun.modules.api.user.para.UserPara;
import com.pengshun.modules.domain.User;
import com.pengshun.modules.domain.UserWechat;
import com.pengshun.modules.common.BaseResult;

public interface UserService {

    /**
     * 获取验证码
     *
     * @param para
     * @return
     */
    BaseResult getCode(UserPara para) throws Exception;

    /**
     * 验证码登陆
     *
     * @param para
     * @return
     */
    BaseResult verificationLogin(UserPara para) throws Exception;

    /**
     * 修改密码
     *
     * @param para
     * @return
     */
    BaseResult updatePass(UserPara para) throws Exception;

    /**
     * 手机号密码登陆
     *
     * @param para
     * @return
     * @throws Exception
     */
    BaseResult passLogin(UserPara para) throws Exception;

    UserDto findByName(String phone);

    /**
     * 注册
     *
     * @param para
     * @return
     */
    BaseResult resgtion(UserPara para) throws Exception;

    /**
     * 个人信息
     *
     * @param id
     * @return
     */
    BaseResult detil(Long id);

    /**
     * 忘记密码
     *
     * @param para
     * @return
     */
    BaseResult forgetPass(UserPara para);

    /**
     * 微信登陆
     *
     * @param para
     * @return
     */
    BaseResult wechatLogin(UserWechat para);

    /**
     * 微信绑定手机号
     *
     * @param para
     * @return
     */
    BaseResult wechatBiding(UserPara para);


    /**
     * 商户完善资料
     *
     * @param para
     * @return
     */
    BaseResult binuess(MerchantDto para);

    /**
     * 查询车主或者司机
     *
     * @param user
     * @return
     */
    BaseResult findByPhone(User user);

    /**
     * 个人中心查询
     *
     * @return
     */
    BaseResult getCenter();

    /**
     * 更换角色
     *
     * @param para
     * @return
     */
    BaseResult change(UserPara para);


    /**
     * 更换手机号
     *
     * @param para
     * @return
     */
    BaseResult changePhone(UserPara para);

    /**
     * 修改资料
     *
     * @param user
     * @return
     */
    BaseResult update(UserPara user);

    /**
     * 设置支付密码
     *
     * @param para
     * @return
     */
    BaseResult setPayPass(UserPara para);

    /**
     * 支付密码修改
     *
     * @param para
     * @return
     */
    BaseResult updatePayPass(UserPara para);

    /**
     * 验证码验证
     *
     * @param para
     * @return
     */
    BaseResult verifyCode(UserPara para);

    /**
     * 首页轮播记录
     *
     * @return
     */
    BaseResult getRoll();
}
